Revert "gdk: deactivate/activate surface on keyboard grabs"
authorSamuel Thibault <samuel.thibault@ens-lyon.org>
Tue, 30 Apr 2019 14:45:51 +0000 (16:45 +0200)
committerSamuel Thibault <samuel.thibault@ens-lyon.org>
Tue, 30 Apr 2019 14:48:16 +0000 (16:48 +0200)
This reverts commits 35417a5a74bfebd69b5c069d7a2f517ba571bcf9 and
01455399e83a3dbafb0cdc6e12c7003b2f472a40.

This reintroduces #85, but see discussion in
https://gitlab.gnome.org/GNOME/gtk/merge_requests/433 for the unforeseen
invasive consequences of these commits.

gdk/x11/gdkdevicemanager-core-x11.c
gdk/x11/gdkeventsource.c

index 280510efdc6fb1259e3c49502d17fb0c29218bac..ee7e3695847626bece423677fcdff8391e9be476 100644 (file)
@@ -31,8 +31,8 @@
 
 
 
-#define APPEARS_FOCUSED(toplevel)                           \
-  ((toplevel)->has_focus || (toplevel)->has_focus_window || (toplevel)->has_pointer_focus)
+#define HAS_FOCUS(toplevel)                           \
+  ((toplevel)->has_focus || (toplevel)->has_pointer_focus)
 
 static void    gdk_x11_device_manager_core_finalize    (GObject *object);
 static void    gdk_x11_device_manager_core_constructed (GObject *object);
@@ -752,7 +752,7 @@ _gdk_device_manager_core_handle_focus (GdkSurface *surface,
   if (toplevel->focus_window == original)
     return;
 
-  had_focus = APPEARS_FOCUSED (toplevel);
+  had_focus = HAS_FOCUS (toplevel);
   x11_screen = GDK_X11_SCREEN (GDK_SURFACE_SCREEN (surface));
 
   switch (detail)
@@ -814,7 +814,7 @@ _gdk_device_manager_core_handle_focus (GdkSurface *surface,
       break;
     }
 
-  if (APPEARS_FOCUSED (toplevel) != had_focus)
+  if (HAS_FOCUS (toplevel) != had_focus)
     {
       GdkEvent *event;
 
index 25c68c3a3ecdf09ec49b92e062678d3d96e66717..23ab3200b29cf0d5d22507e7c393f6ff88e93ea7 100644 (file)
@@ -36,8 +36,8 @@ static void     gdk_event_source_finalize (GSource     *source);
 
 static GQuark quark_needs_enter = 0;
 
-#define APPEARS_FOCUSED(toplevel)                           \
-  ((toplevel)->has_focus || (toplevel)->has_focus_window || (toplevel)->has_pointer_focus)
+#define HAS_FOCUS(toplevel)                           \
+  ((toplevel)->has_focus || (toplevel)->has_pointer_focus)
 
 struct _GdkEventSource
 {
@@ -108,10 +108,10 @@ handle_focus_change (GdkEventCrossing *event)
   if (!event->focus || toplevel->has_focus_window)
     return;
 
-  had_focus = APPEARS_FOCUSED (toplevel);
+  had_focus = HAS_FOCUS (toplevel);
   toplevel->has_pointer_focus = focus_in;
 
-  if (APPEARS_FOCUSED (toplevel) != had_focus)
+  if (HAS_FOCUS (toplevel) != had_focus)
     {
       GdkEvent *focus_event;